Funksione matematike
Ndonjehere, pervec mbledhjes, zbritjes, shumezimit etj. te cilat jane veprime te thjeshta aritmetike qe realizohen nepermjet operatoreve aritmetike ( +, -, *, /, % ), na nevojitet matematike me e avancuar. Per kete arsye sebashku me PHP-ne vijne nje numer i konsiderueshem funksionesh per te kryer veprime te avancuara matematike. Me poshte do te shohim nje pjese te funksioneve kryesore matematike, te cilat nuk kane nevoje per importime te librarive te jashtme per tu perdorur.
abs
number abs ( $number )
Funksioni abs
kthen vleren absolute te numrit qe merr si parameter ne hyrje. Na baze te tipit te variablit ne hyrje, kthehet edhe tipi i variablit ne dalje. P.sh. ne rast se ne hyrje kalojme nje integer
, edhe ne dalje do te kthehet nje integer
. Ne rast se ne hyrje kalojme nje float
, atehere edhe ne dalje do te kthehet nje float
.
Shembull:
echo abs(-4.2); // printon 4.2 (double/float)
echo abs(5); // printon 5 (integer)
echo abs(-5); // printon 5 (integer)
max
max ( array $values )
Ne rast se parametri ne hyrje eshte i tipit array
, do te kthehet vlera maksimale ndermjet elementeve te array-t. Ky funksion pranon edhe nje format tjeter te parametrave ne hyrje, si me poshte:
max ( $value1 , $value2 [, $... ] )
Kur te pakten i jepen dy ose me shume parametra ne hyrje, atehere funksioni kthen vleren maksimale ndermjet vlerave te dhena si input. Ne kete rast nje stringe jo numerike do te llogaritet si vlere 0
per qellime krahasimi.
Shembuj:
echo max(array(2, 4, 5)); //Rezultati: 5
echo max(2, 3, 1, 6, 7); //Rezultati: 7
// Stringa 'Pershendetje!' kur krahasohet me nje integer trajtohet me vlere 0
// Dukeqenese te dy vlerat jane te njejta (0), rezultati vendoset nga renditja e parametrave,
// kthehet parametri i pare
echo max(0, 'Pershendetje!'); //Rezultati: 0
echo max('Pershendetje!', 0); //Rezultati: Pershendetje!
// Ne kete rast krahasohet -1 < 0, keshtu qe 'Pershendetje!' eshte vlera me e madhe
echo max('Pershendetje!', -1); //Rezultati: Pershendetje!
min()
- funksionon ne te njejten menyre simax()
vetem se gjendet vlera minimale (vlera me e vogel)
pi
float pi ()
Kthen nje vlere te perafert te konstantes matematike pi (π). Per te marre te njejten vlere mund te perdorim edhe konstanten globale M_PI
te PHP-se.
Shembull:
echo pi(); //Rezultati: 3.1415926535898
echo M_PI; //Rezultati: 3.1415926535898
pow
number pow ( number $base , number $exp )
Shprehje eksponenciale. Kthen vleren e numrit $base
te ngritur ne fuqi te eksponentit $exp
.
Ne versioni 5.6 te PHP-se u prezantua operatori **
i cili kryen te njejtin funksion si funksioni me lart $a ** $b
, pra ngritja ne fuqi e nje numri.
Shembull:
var_dump(pow(2, 8)); //Rezultati: int(256)
echo pow(-1, 20); //Rezultati: 1
echo pow(0, 0); //Rezultati: 1
echo pow(10, -1); //Rezultati: 0.1
//Ne versionin 5.6 e lart, mund te perdorim dhe operatorin **
echo (2 ** 8); //Rezultati: 256
sqrt
float sqrt ( float $arg )
Kthen rrenjen katrore te numrit $arg
. Ne rast se i kalojme nje numer negativ si parameter hyrje, do te na kthehet vlera speciale NAN
.
Shembull:
//Precizioni varet nga direktiva e precisionit te PHP-se qe kemi te instaluar
echo sqrt(9); //Rezultati: 3
echo sqrt(10); //Rezultati: 3.16227766 ...
log
float log ( float $arg [, float $base = M_E ] )
Nqs. parametri opsional $base
eshte specifikuar atehere funksioni log()
kthen log base arg, pra logaritmin me baze $base
te $arg
. Ne rast se nuk eshte specifikuar $base
, atehere kthehet logaritmi natyral i $arg
.
Shembull:
var_dump( log(10) ); //Rezultati: float(2.30258509299)
- log10() - kthen logaritmin me baze 10 te parametrit ne hyrje.
round
float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
Rrumbullakon nje numer float
, ne precizionin e percaktuar $precision
(sa numra pas presjes dhjetore). Ne rast se nuk percaktojme $precision
, vlera default e tij eshte 0
. Precizioni mund te pranoje edhe numra negative.
Shembuj:
echo round(3.4); //Rezultati: 3
echo round(3.5); //Rezultati: 4
echo round(3.6); //Rezultati: 4
echo round(3.6, 0); //Rezultati: 4
echo round(1.95583, 2); //Rezultati: 1.96
echo round(1241757, -3); //Rezultati: 1242000
echo round(5.045, 2); //Rezultati: 5.05
echo round(5.055, 2); //Rezultati: 5.06
Si argument te trete opsional mund te percaktojme menyren sesi do te ndodhe rrumbullakimi, duke perdorur disa konstante:
PHP_ROUND_HALF_UP - Kur jemi ne gjysme rrumbullakimi do te behet nga ana e siperme, p.sh. 1.5 rrumbullakohet ne 2 and -1.5 rrumbullakohet ne -2
PHP_ROUND_HALF_DOWN - Kur jemi ne gjysme rrumbullakimi do te behet nga ana e poshtme, p.sh. 1.5 rrumbullakohet ne 1 and -1.5 rrumbullakohet ne -1
PHP_ROUND_HALF_EVEN - Rrumbullakos ne drejtim te tille qe vlera e kthyer te jete
cift
- PHP_ROUND_HALF_ODD - Rrumbullakos ne drejtim te tille qe vlera e kthyer te jete
tek
Shembuj me precizion 0:
echo round(9.5, 0, PHP_ROUND_HALF_UP); //Rezultati: 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); //Rezultati: 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); //Rezultati: 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD); //Rezultati: 9
echo round(8.5, 0, PHP_ROUND_HALF_UP); //Rezultati: 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); //Rezultati: 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); //Rezultati: 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD); //Rezultati: 9
Shembuj me precizion 1 shifer dhjetore:
/* Perdorimi i PHP_ROUND_HALF_UP me precizion 1 shifer dhjetore */
echo round( 1.55, 1, PHP_ROUND_HALF_UP); //Rezultati: 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP); //Rezultati: 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP); //Rezultati: -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP); //Rezultati: -1.5
/* Perdorimi i PHP_ROUND_HALF_DOWN me precizion 1 shifer dhjetore */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); //Rezultati: 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); //Rezultati: 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); //Rezultati: -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); //Rezultati: -1.5
/* Perdorimi i PHP_ROUND_HALF_EVEN me precizion 1 shifer dhjetore */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); //Rezultati: 1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); //Rezultati: 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); //Rezultati: -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); //Rezultati: -1.5
/* Perdorimi i PHP_ROUND_HALF_ODD me precizion 1 shifer dhjetore */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD); //Rezultati: 1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD); //Rezultati: 1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD); //Rezultati: -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD); //Rezultati: -1.5
floor
floor ( float $value )
Ky funksion kthen vleren integer
me te vogel te ardhshme duke rrumbullakosur nga ana e poshtme vleren $value
nqs. eshte e nevojshme.
Shembuj:
echo floor(2.4); //Rezultati: 2
echo floor(8.999); //Rezultati: 8
echo floor(-4.14); //Rezultati: -5
ceil
float ceil ( float $value )
Ky funksion kthen vleren integer
me te madhe te ardhshme duke rrumbullakosur nga ana e siperme vleren $value
nqs. eshte e nevojshme.
Shembuj:
echo ceil(2.3); //Rezultati: 3
echo ceil(8.999); //Rezultati: 9
echo ceil(-4.14); //Rezultati: -4
rand
int rand ()
Ky funksion gjeneron nje numer integer
te rastesishem nga 0 deri ne numrin maksimal te mundshem qe mund te gjenerohet ne menyre te rastesishme. Numrin maksimal te mundshem qe mund te gjenerohet ne menyre te rastesishme mund ta marrim nepermjet funksionit getrandmax ()
.
Funksioni rand()
mund te pranoje edhe dy parametra hyres:
int rand ( int $min , int $max )
Nepermjet ketyre parametrave percaktojme nje minimum dhe maksimum te numrit te rastesishem qe duam te perftojme.
Shembuj:
echo rand(); //Rezultati: 3442
echo rand(); //Rezultati: 66541
echo rand(6, 20); //Rezultati: 17
- mt_rand() - kryen te njejtin funksion, por ne kete rast gjeneron nje numer te rastesishem edhe me te mire. Nqs. parametri
$max
i dhene eshte me i vogel sesa parametri$min
, atehere funksioni kthenFALSE
sin
float sin ( float $arg )
Funksioni kthen sinusin e nje numri te dhene ne hyrje. Vlera ne hyrje duhet te jepet ne radian.
Shembuj:
//Precizioni varet nga direktiva e precisionit te PHP-se qe kemi te instaluar
// deg2rad eshte nje funksion qe konverton 'grade' ne `radian`
echo sin(deg2rad(60)); //Rezultati: 0.866025403 ...
echo sin(60); //Rezultati: -0.304810621 ...
- cos() - Gjen kosinusin e nje numri
- tan() - Gjen tangentin e nje numri
- acos() - Gjen ark-kosinusin e nje numri
- asin() - Gjen ark-sinusin e nje numri
- deg2rad() - Konverton vleren nga grade ne radian
is_nan
bool is_nan ( float $val )
Kontrollon nqs. nje vlere e dhene ne hyrje nuk eshte nje numer. Nqs. vlera e dhene ne hyrje nuk eshte nje numer atehere funksioni kthen TRUE
, perndryshe ai kthen FALSE
.
Shembull:
// Llogaritje e gabuar, do te ktheje nje vlere NAN
$vlera = acos(8);
var_dump($vlera); //Rezutati: float(NAN)
var_dump(is_nan($vlera)); //Rezutati: bool(true)